/// <summary> /// Get roles from user. Use "GetLoggedUser()" to get "ApplicationUser" /// </summary> /// <param name="userID">Send "ApplicationUser.id" from method "GetLoggerUser()"</param> /// <returns></returns> public List <string> GetRolesFromUser(string userID, out string error) { error = null; try { UserManager UserManager = new GreeNova.DGNB.SystemSoftware.SecurityProvider.Managers.UserManager(); var roles = UserManager.GetRoles(userID); return(roles.ToList()); } catch (Exception ex) { error = "Could not retrive 'GetRolesFromUser'. Error:" + ex.Message + Environment.NewLine + ex.StackTrace; return(null); } }
/// <summary> /// Ultimate place to get logged info data /// </summary> /// <param name="principal"></param> /// <param name="error"></param> /// <returns></returns> public LoggedUserCompleteInfo GetLoggedUserAndLocalDBUser(IIdentity principal, bool loadRoles, out string error) { error = null; try { UserManager UserManager = new GreeNova.DGNB.SystemSoftware.SecurityProvider.Managers.UserManager(); if (principal.Name == null) { return(null); } GreeNova.DGNB.SystemSoftware.SecurityProvider.Database.ApplicationUser loggedUser = UserManager.FindByName(principal.Name); LoggedUserCompleteInfo loggedUserInfo = new LoggedUserCompleteInfo(); loggedUserInfo.MainRole = ""; loggedUserInfo.GreenNovaLoggedUser.UserName = loggedUser.UserName; if (loadRoles) { List <string> roles = UserManager.GetRoles(loggedUser.Id).ToList(); loggedUserInfo.GreenNovaLoggedUser.Roles = roles; PermissionManager permissionManager = new PermissionManager(); if (roles != null) { if (roles.Count > 0) { loggedUserInfo.MainRole = permissionManager.GetMainUserRole(roles); } } } loggedUserInfo.LoadLocalDBUser(); return(loggedUserInfo); } catch (Exception ex) { error = "Could not retrive 'GetLoggedUser'. Error:" + ex.Message + Environment.NewLine + ex.StackTrace; return(null); } }