/AzManADAMStore/AzManADAMStore/UserProfileDefinition.cs
C# | 255 lines | 170 code | 27 blank | 58 comment | 35 complexity | ed92bf83230014be10349b73bae14fb4 MD5 | raw file
1using System; 2using System.Collections.Generic; 3using System.Text; 4 5namespace AzManADAMStore 6{ 7 /// <summary> 8 /// Clase que encapsula el perfil de un usuario 9 /// </summary> 10 public class UserProfileDefinition 11 { 12 /// <summary> 13 /// Nombre del usuario 14 /// </summary> 15 public string UserName; 16 17 /// <summary> 18 /// Lista de toles asignados 19 /// </summary> 20 public Role.RoleList Roles; 21 22 23 public UserProfileDefinition(string UserName) 24 { 25 this.UserName = UserName; 26 this.Roles = new Role.RoleList(); 27 } 28 29 30 31 /// <summary> 32 /// Indica si el usuario pertence al rol indicado 33 /// </summary> 34 /// <param name="RoleName">Rol a buscar</param> 35 /// <returns></returns> 36 public bool IsUserInRole(string RoleName) 37 { 38 try 39 { 40 bool res = false; 41 if (string.IsNullOrEmpty(RoleName)) 42 return false; 43 44 return IsUserInRole(RoleName, this.Roles); 45 } 46 catch 47 { 48 return false; 49 } 50 } 51 52 /// <summary> 53 /// Indica si el usuario pertence al rol indicado 54 /// </summary> 55 /// <param name="RoleName">Rol a buscar</param> 56 /// <param name="RolesList"></param> 57 /// <returns></returns> 58 internal bool IsUserInRole(string RoleName, Role.RoleList RolesList) 59 { 60 try 61 { 62 bool res = false; 63 if (!string.IsNullOrEmpty(RoleName)) 64 if (RolesList != null) 65 if (RolesList.ContainsKey(RoleName)) 66 res = true; 67 else 68 foreach (Role rol in RolesList.Values) 69 if ((res = IsUserInRole(RoleName, rol.Roles))) 70 break; 71 72 return res; 73 } 74 catch 75 { 76 return false; 77 } 78 } 79 80 /// <summary> 81 /// Indica si el usuario actual tiene asignado la tarea indicada 82 /// </summary> 83 /// <param name="TaskName">Nombre de la tarea a validar</param> 84 /// <returns></returns> 85 public bool IsUserInTask(string TaskName) 86 { 87 try 88 { 89 if (string.IsNullOrEmpty(TaskName)) 90 return false; 91 92 return IsUserInTask(TaskName, this.Roles); 93 } 94 catch 95 { 96 return false; 97 } 98 } 99 100 /// <summary> 101 /// Indica si el usuario actual tiene asignado la tarea indicada 102 /// </summary> 103 /// <param name="TaskName">Nombre de la tarea a validar</param> 104 /// <param name="RolesList">r</param> 105 /// <returns></returns> 106 internal bool IsUserInTask(string TaskName, Role.RoleList RolesList) 107 { 108 try 109 { 110 bool res = false; 111 if (!string.IsNullOrEmpty(TaskName)) 112 if (RolesList != null) 113 foreach (Role rol in RolesList.Values) 114 { 115 if(rol.Tasks != null) 116 if(rol.Tasks.ContainsKey(TaskName)) 117 res = true; 118 else 119 foreach (Task task in rol.Tasks.Values) 120 if ((res = IsUserInTask(TaskName, task.Tasks))) 121 break; 122 123 if(!res) 124 res = IsUserInTask(TaskName, rol.Roles); 125 } 126 127 return res; 128 } 129 catch 130 { 131 return false; 132 } 133 } 134 135 /// <summary> 136 /// Indica si el usuario actual tiene asignado la tarea indicada 137 /// </summary> 138 /// <param name="TaskName">Nombre de la tarea a validar</param> 139 /// <param name="TaskList"></param> 140 /// <returns></returns> 141 internal bool IsUserInTask(string TaskName, Task.TaskList TaskList) 142 { 143 try 144 { 145 bool res = false; 146 if (!string.IsNullOrEmpty(TaskName)) 147 if (TaskList != null) 148 if (TaskList.ContainsKey(TaskName)) 149 res = true; 150 else 151 foreach (Task task in TaskList.Values) 152 if ((res = IsUserInTask(TaskName, task.Tasks))) 153 break; 154 155 return res; 156 } 157 catch 158 { 159 return false; 160 } 161 } 162 163 164 /// <summary> 165 /// Indica si el usuario actual tiene asignado la tarea indicada. 166 /// Una operación debería de estar asociada a una tarea. 167 /// </summary> 168 /// <param name="TaskName">Nombre de la tarea que contiene la operación</param> 169 /// <param name="OperationName">Nombre de la operación a validar</param> 170 /// <returns></returns> 171 public bool IsUserInTaskOperation(string TaskName, string OperationName) 172 { 173 try 174 { 175 if (string.IsNullOrEmpty(TaskName)) 176 return false; 177 178 if (string.IsNullOrEmpty(OperationName)) 179 return false; 180 181 return IsUserInTaskOperation(TaskName, OperationName, this.Roles); 182 } 183 catch 184 { 185 return false; 186 } 187 } 188 189 /// <summary> 190 /// Indica si el usuario actual tiene asignado la tarea indicada 191 /// </summary> 192 /// <param name="TaskName">Nombre de la tarea a validar</param> 193 /// <param name="OperationName"></param> 194 /// <param name="RolesList">r</param> 195 /// <returns></returns> 196 internal bool IsUserInTaskOperation(string TaskName, string OperationName, Role.RoleList RolesList) 197 { 198 try 199 { 200 bool res = false; 201 if (!string.IsNullOrEmpty(TaskName)) 202 if (RolesList != null) 203 foreach (Role rol in RolesList.Values) 204 { 205 if (rol.Tasks != null) 206 if (rol.Tasks.ContainsKey(TaskName)) 207 res = (rol.Tasks[TaskName].Operations.ContainsKey(OperationName)); 208 else 209 foreach (Task task in rol.Tasks.Values) 210 if ((res = IsUserInTaskOperation(TaskName, OperationName, task.Tasks))) 211 break; 212 213 if (!res) 214 res = IsUserInTaskOperation(TaskName, OperationName, rol.Roles); 215 } 216 217 return res; 218 } 219 catch 220 { 221 return false; 222 } 223 } 224 225 /// <summary> 226 /// Indica si el usuario actual tiene asignado la tarea indicada 227 /// </summary> 228 /// <param name="TaskName">Nombre de la tarea a validar</param> 229 /// <param name="OperationName"></param> 230 /// <param name="TaskList"></param> 231 /// <returns></returns> 232 internal bool IsUserInTaskOperation(string TaskName, string OperationName, Task.TaskList TaskList) 233 { 234 try 235 { 236 bool res = false; 237 if (!string.IsNullOrEmpty(TaskName)) 238 if (TaskList != null) 239 if (TaskList.ContainsKey(TaskName)) 240 res = (TaskList[TaskName].Operations.ContainsKey(OperationName)); 241 else 242 foreach (Task task in TaskList.Values) 243 if ((res = IsUserInTaskOperation(TaskName, OperationName, task.Tasks))) 244 break; 245 246 return res; 247 } 248 catch 249 { 250 return false; 251 } 252 } 253 254 } 255}