MCPcopy Create free account
hub / github.com/diillson/chatcli / AddRule

Method AddRule

cli/coder/policy_manager.go:192–223  ·  view source on GitHub ↗
(pattern string, action Action)

Source from the content-addressed store, hash-verified

190}
191
192func (pm *PolicyManager) AddRule(pattern string, action Action) error {
193 pm.mu.Lock()
194 defer pm.mu.Unlock()
195
196 pattern = strings.TrimSpace(pattern)
197
198 // Reject empty or excessively long patterns
199 if pattern == "" {
200 return fmt.Errorf("empty policy pattern rejected")
201 }
202 if len(pattern) > 500 {
203 return fmt.Errorf("policy pattern too long (%d chars)", len(pattern))
204 }
205
206 pm.logger.Info("Updating security policy", zap.String("pattern", pattern), zap.String("action", string(action)))
207
208 updated := false
209 for i, rule := range pm.Rules {
210 if rule.Pattern == pattern {
211 pm.Rules[i].Action = action
212 updated = true
213 break
214 }
215 }
216
217 if !updated {
218 pm.Rules = append(pm.Rules, Rule{Pattern: pattern, Action: action})
219 }
220
221 pm.lastRule = nil
222 return pm.save()
223}
224
225// DeleteRule removes the rule whose Pattern matches exactly. Returns
226// (true, nil) when a rule was removed, (false, nil) when no rule

Calls 6

saveMethod · 0.95
LockMethod · 0.80
UnlockMethod · 0.80
ErrorfMethod · 0.80
InfoMethod · 0.65
StringMethod · 0.45