PageRenderTime 44ms CodeModel.GetById 37ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/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}