PageRenderTime 49ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/AzManADAMStore/AzManADAMStore/UserProfileDefinition.cs

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